﻿using System;

namespace Loki.UI
{
    /// <summary>
    /// Base interface for views.
    /// </summary>
    public interface IView
    {
        event EventHandler Clean;

        /// <summary>
        /// Gets or sets the view model.
        /// </summary>
        /// <value>The view model.</value>
        IViewModel ViewModel { get; set; }

        /// <summary>
        /// Shows this instance.
        /// </summary>
        void Show();
    }

    /// <summary>
    /// Base interface for views.
    /// </summary>
    /// <typeparam name="TViewModel">The type of the view model.</typeparam>
    public interface IView<TViewModel> where TViewModel : IViewModel
    {
        /// <summary>
        /// Gets or sets the view model.
        /// </summary>
        /// <value>The view model.</value>
        TViewModel ViewModel { get; set; }
    }
}